Installation
To install this package do
install.packages(c("R.oo", "R.matlab"))
To get the "devel" version, use
install.packages("R.classes", contriburl="http://www.maths.lth.se/help/R")Update
To update this package do
update.packages()
Dependancies and other requirements
This package depends on the R.oo package.
The readMat()
and writeMat()
methods do
$not$ require a Matlab installation.
To connect to Matlab, Matlab v6 or higher is required.
It does not work with Matlab v5 or before.
This is a cross-platform package implemented in pure R.
For confirmed Matlab versions, see help
() on the "Matlab" class.Miscellaneous
A related initiative is RMatlab by Duncan Temple Lang
and Omegahat. It provides a bi-directional interface between the
Rand Matlab languages. For more details, see
http://www.omegahat.org/RMatlab/.
To call R from Matlab on Windows (only), see MATLAB R-link
by Robert Henson available at the Matlab Central File Exchange
(http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=5051).How to cite this package
Whenever using this package, please cite [1] as
@TECHREPORT{BengtssonH_2005,
author = {Bengtsson, Henrik},
title = {{R.matlab} - Local and remote {M}atlab connectivity in {R}},
institution = {Mathematical Statistics, Centre for Mathematical Sciences,
Lund University, Sweden},
year = {2005},
type = {{Preprint in Mathematical Sciences (manuscript in progress)}},
note = {[manuscript in progress]},
url = {http://www.maths.lth.se/help/R/R.matlab/},
}
Wishlist
Here is a list of features that would be useful, but which I have
too little time to add myself. Contributions are appreciated.
- Add a function, say,
Matlab$createShortcut()
which
creates a Windows shortcut to start the Matlab server
by double clicking it. It should be possible to create
it in the current directory or to the Desktop.
Maybe it is possible to do this upon installation and
even to a Start -> All Programs -> R menu. - Update the MatlabServer.m script to allow the user to
specify, say from the command line, the port to connect to.
This would improve security a little bit.
- To improve security, update the MatlabServer.m script to
allow the user to specify a "password" to be send upon
connection from R in order for Matlab to accept the
connection. This password should be possible to specify
from the command line when start Matlab. If not given,
no password is required.
- Add additional methods to the Matlab class. For instance,
inline function in Matlab could have its own method.
- Wrap up common Matlab commands as methods of the Matlab
class, e.g.
who(matlab)
,clear(matlab)
etc.
Can this be done automatically using "reflection", so
that required arguments are automatically detected? - Add support for reading (and writing) sparse matrices
to be represented by the sparse matrix class defined in
SparseM
package. - Add access to Matlab variables via
"$"
and"$<-"
, e.g.matlab$A
andmatlab$A <- 1234
. Is this wanted?
Maybe the same for functions, e.g.matlab$dice(1000)
.
Is it possible to return multiple return values?
If you consider implement some of the above, make sure it is not
already implemented by downloading the latest "devel" version!Acknowledgements
We wish to thank the following people who contributed with valuable
feedback, suggestions, and code:
- Patrick Drechsler, Biocenter, University of Wuerzburg.
- Andy Jacobson, Atmospheric and Oceanic Sciences Program,
Princeton University.
- Yichun Wei, Department of Biological Sciences,
University of Southern California.
References
[1] Henrik Bengtsson,
R.matlab - Local and remote Matlab connectivity in R,
Mathematical Statistics, Centre for Mathematical Sciences,
Lund University, Sweden, 2005. (manuscript in progress).